package pers.lws.erp.utils;

import org.omg.CORBA.Current;
import org.springframework.util.StringUtils;

import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 生成项目中的ID编号
 * @author liuws
 * @create 2020-09-15 15:08
 */
public class GeneratorID {

    /**
     * 生成id
     * @param str 项目当前到的id或前缀
     * @return
     */
    public static String getId(String str) {

        if (StringUtils.isEmpty(str)) {
            return null;
        }

        //获取当前时间
        String currTime = new SimpleDateFormat("yyyyMMdd").format(new Date());

        //如果是正常格式
        if (str.length() == 15) {
            //分割编号
            String prefix = str.substring(0, 3);
            String idTime = str.substring(3, 11);
            String suffer = str.substring(11);
            //流水号加1
            suffer = new DecimalFormat("0000").format(Integer.parseInt(suffer) + 1);
            return prefix + (currTime.equals(idTime) ? idTime : currTime) + suffer;
        } else if (str.length() == 3) {
            return str + currTime + "0001";
        } else {
            return "错误";
        }
    }

}
